QT官方/镜像的下载地址
官网下载地址(下载速度非常慢,需要魔法)
国内镜像下载地址(已经全部失效)
- 中国互联网络信息中心:https://mirrors.cnnic.cn/qt/
页面下载(下载速度非常慢,需要魔法,且需要桌面显示,对linux云服务器不利)
选择该页面的archive/qt/5.12/5.12.x/single/qt-everywhere-src-5.12.8.tar.xz,并下载,推荐5.12.8版本
百度网盘下载地址
- 包含:QT5.12.8 linux源码,QT5.12.8 Windows开源长期维护版本,linux源码,在线下载器6.4.1,安卓SDK/NDK和JAVA SDK
- 链接:https://pan.baidu.com/s/1Jo4G82WE-E6BGU2oc7Ql7g?pwd=1234
- 提取码:1234
QT5.12.8_linux源码安装
bypy下载(可选)
- bypy可以绑定百度网盘,并可以在百度网盘上下载程序
安装bypy
1 pip install bypy
输入下列代码,如果不在虚拟环境下,需要使用加入python3 -m,并根据提示绑定百度网盘,等待一段时间
1 bypy info # python3 -m bypy info绑定成功后会出现如<图一>
1
2 bypy downfile xxx #下载单个文件
bypy downdir xxx #下载单个文件夹
QT5.12.8安装
- 依赖安装
1
2
3
4
5sudo apt-get install libxcb-xfixes0-dev libxcb-util-dev
sudo apt-get install libxcb-xinerama0
sudo apt-get install build-essential libgl1-mesa-dev
sudo apt-get install libxcb*
sudo apt-get install libxkbcommon*
- 下载qt-everywhere-src-5.12.8.tar.xz,自选放置路径,如/opt/qt5.12.8/内部。
- 解压缩
1
sudo tar -xvf qt-everywhere-src-5.12.8.tar.xz
- 终端进入QT源码文件夹,输入下指令,跳过一些不必要的模块(根据自己的需求)
1
./configure -prefix /opt/qt5.12.8/qt5.12.8 -release -opensource -skip qtwayland -skip qtlocation -skip qtscript -skip qt3d -skip qtcanvas3d -skip datavis3d -skip qtvirtualkeyboard -platform linux-g++
如果是linux的arm环境那么添加参数-platform <你的gcc编译器版本>,如-platform linux-aarch64-gnu-g++(能在/qtbase/mkspecs/下找到)
如果是交叉编译那么添加参数-xplatform <你的目标平台gcc编译器版本>,-xplatform linux-aarch64-gnu-g++
configure参数解析
CSDN(粗略) https://blog.csdn.net/qq_37654240/article/details/109639331
博客(较深) https://www.cnblogs.com/findumars/p/6254629.html
-opensource表示使用开源版本,-confirm-license表示确认许可,-prefix表示安装路径
以下文件夹均可当参数跳过,例如-skip qt3d
等待一段时间,之后输入下列指令
1
make -j4 #表示使用4个线程进行编译,可以根据自己的cpu核心数进行调整
并等待2小时+
- 安装编译好的QT
1
sudo make install
修正,报错/usr/bin/ld.gold: error: cannot find -lclip2tri 或者 /usr/bin/ld.gold: error: cannot find -lpoly2tri 或者 /usr/bin/ld.gold: error: cannot find -lclipper,这主要是因为qtlocation模块依赖这个,我们-sikp qtlocation,即可跳过该报错
1 ./configure -prefix /opt/qt/qt5.12.8 -release -opensource -confirm-license -skip qtwayland -skip qtlocation -skip qtscript -skip qt3d -skip qtcanvas3d -skip datavis3d -skip qtvirtualkeyboard -xcb-xlib -qt-xcb出现报错 not find python,但是其实已经下载了python,如<图二>
是因为没有建立映射关系,输入如下指令
1
2 sudo ln -s /usr/bin/python3 /usr/bin/python
ls -l /usr/bin/python*发现,已经有python的映射了<图三>
报错 C++: fatal error: Killed signal terminated program cc1plus compilation terminated.
是虚拟机内存不足造成的。通过创建swap分区解决了这个问题
1
2
3
4
5
6
7
8
9
10
11
12
13 # 创建分区路径
sudo mkdir -p /var/cache/swap/
# 设置分区的大小
# bs=64M是块大小,count=64是块数量,所以swap空间大小是bs*count=4096MB=4GB
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=64M count=64
# 设置该目录权限
sudo chmod 0600 /var/cache/swap/swap0
# 创建SWAP文件
sudo mkswap /var/cache/swap/swap0
# 激活SWAP文件
sudo swapon /var/cache/swap/swap0
# 查看SWAP信息是否正确
sudo swapon -s删除交换分区的命令
1
2 sudo swapoff /var/cache/swap/swap0
sudo rm /var/cache/swap/swap0释放空间命令
1
2
3 sudo swapoff -a
#详细的用法:swapoff --help
#查看当前内存使用情况:free -m
- 安装成功,没有任何error,图五
- 将安装成功的qt添加至环境变量
1
sudo vim /etc/profile
将下列代码添加至profile文件中
1
2
3
4export QTDIR=/opt/qt-5.12.5-install(你的qt安装目录)
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH然后退出,并输入如下代码,声明环境变量
1
source /etc/profile
- 检验qt是否安装成功,输入
1
qmake -v
输出图六,成功~
如果想看详细的输出问题
- 打开环境变量配置文件
1
sudo vim ~/.bashrc
末尾添加如下代码
1
export QT_DEBUG_PLUGINS=1
- 启动环境变量
1
source ~/.bashrc
如何进行编译,生成linux可执行文件
- 使用qmake xxx.pro(你的.pro文件)生成Makefile文件
1
qmake xxx.pro
- 使用make生成可执行文件
1
make
- 执行可执行文件
1
./xxx
完成
- 如果想查看代码行数
1
(Get-ChildItem -Recurse -File | Get-Content | Measure-Object -Line).Lines